In early computer systems, it was often difficult or even impossible to replace certain hardware components, e.g., the power supply, memory, and I/O controllers, after the computer had been manufactured. For example, such components might be hardwired together and attempting to remove the components might irreversible damage the computer. In certain cases, it was possible to remove such components by breaking and re-establishing physical connections (e.g., by soldering); however, such processes were tedious and time-consuming and typically required a skilled technician.
Modern computer systems frequently incorporate field-replaceable units (FRUs), which are components such as the power supply, memory, and I/O controllers that can be replaced in the field (i.e., at user locations). These FRUs generally interface with a computer's modular hardware interfaces, and thus FRUs can typically be removed by a relatively unskilled technician. Removing an FRU may, for example, only require removing a few screws and extracting the FRU from the computer's housing.
Generally, FRUs communicate with a computer system's management controller, such as a baseboard management controller (BMC). FRUs communicate with the BMC (or other management controller) using the Intelligent Platform Management Interface (IPMI), which is the protocol and set of commands that allows the various FRUs and management controller to communicate. FRU information is generally stored in a FRU information device (e.g., EEPROM). While IPMI specifies the protocols and commands that allow the FRUs to communicate with the management controller, as well as recommending the storage organization of the FRU Information Device, FRU information must still be properly formatted such that it can be processed by the management controller.
Therefore, there is a long-felt but unresolved need for a system and method for efficiently and effectively generating FRU information data into a format that is readable by a management controller in accordance with IPMI such that the FRU and the management controller are interoperable.